--En base de datos sybmas_db con usuario sybmas como dbo

create table sybmas_modulo(
 id_modulo NUMERIC(2,0) CONSTRAINT pk_modulo PRIMARY KEY,
 nombre VARCHAR(30) NOT NULL,
 ubicacion VARCHAR(50) NULL,
 fecha datetime NULL
)
go


create table sybmas_rolesmodulo(
 srid smallint NULL,
 id_modulo NUMERIC(2,0)
)
go

--La tabla sybmas_rolesmodulo no debe llevar llave primaria debido a que dicha restriccion no acepta nulos
--En su lugar se genera un indice unico el cual acepta nulos
--Un nulo significa que un módulo estará disponible para cualquier login sin importar si este esta asociado
--a algun rol
create unique clustered index idx_rolesmodulo on sybmas_rolesmodulo(srid,id_modulo)
go


alter table sybmas_rolesmodulo ADD CONSTRAINT fk_modulo FOREIGN KEY(id_modulo) REFERENCES sybmas_modulo(id_modulo)
go

--Esta llave foranea hace referencia a una tabla del sistema, sobre la cual se le otorgaron privilegios 
--SELECT y REFERENCE al usuario sybmas
alter table sybmas_rolesmodulo ADD constraint fk_syssrvroles FOREIGN KEY(srid) REFERENCES master..syssrvroles(srid)
go



